package com.sc.nft.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.UserInfo;
import com.sc.nft.entity.dto.ExamineAndApproveDTO;
import com.sc.nft.entity.dto.ServiceCenterAuditAddDTO;
import com.sc.nft.entity.dto.ServiceCenterAuditDTO;
import com.sc.nft.entity.vo.*;

/**
 * (ServiceCenterAudit)表服务接口
 *
 * @author wwc
 * @since 2023-07-18 14:40:11
 */
public interface ServiceCenterAuditService {

    Page<ServiceCenterAuditVO> compactPage(ServiceCenterAuditDTO serviceCenterAuditDTO);

    /**
     * 根据id获取详情
     *
     * @param id
     * @return
     */
    ServiceCenterAuditDetailsVO getById(Long id);

    /**
     * 审批
     *
     * @param examineAndApproveDTO
     */
    void examineAndApprove(ExamineAndApproveDTO examineAndApproveDTO);

    /**
     * 新增申请
     *
     * @param serviceCenterAuditAddDTO
     */
    void add(ServiceCenterAuditAddDTO serviceCenterAuditAddDTO);

    /**
     * 审核状态
     *
     * @param user
     * @return
     */
    ServiceCenterAuditDisplayTypeVO displayType(UserInfo user, Integer type);

    /**
     * 撤回
     *
     * @param user
     */
    void withdraw(UserInfo user,Integer type);

    /**
     * 草稿箱
     *
     * @param user
     * @return
     */
    ServiceCenterAuditDetailsVO recyclingBin(UserInfo user,Integer type);

    /**
     * 获取工作室或城市服务中心名字
     *
     * @param user
     * @param type
     * @return
     */
    GetWorkRoomOrCityServiceNameVO getWorkRoomOrCityServiceName(UserInfo user, Integer type);

    /**
     * 团队数据
     *
     * @return
     */
    PerformanceVO performance(UserInfo userInfo);

    /**
     * 总业绩 后台使用
     *
     * @param id
     * @return
     */
    WebApplicationRequirementVO totalPerformance(Long id);

    /**
     * 新版成为社区网点和服务中心后的业绩
     * @param user
     * @return
     */
    NewPerformanceVO newPerformance(UserInfo user);

    /**
     * 删除他的申请记录
     * @param userId
     */
    void deleteByUserIdAndType(Long userId,Integer type);
}
